<?php /* УТФ-8:fix */

class SPIstore
{
    static private $instances = array();

    static public function I( $store_id = null )
    {
        if( $store_id === null )
        {
            $store_id = SPIcfg::$store['default_store_id'];
        }


        if( ! isset( self::$instances[$store_id] ) )
        {
            $storecfg = SPIcfg::$store[$store_id];

            switch( strtoupper( $storecfg['type'] ) )
            {
                case 'PGSQL':
                {
                    if( class_exists( 'SPIstore__pgsql' ) === false )
                    {
                        return false;
                    }

                    self::$instances[$store_id] = new SPIstore__pgsql($storecfg);
                    break;
                }

                case 'MYSQL':
                {
                    if( class_exists( 'SPIstore__mysql' ) === false )
                    {
                        return false;
                    }

                    self::$instances[$store_id] = new SPIstore__mysql($storecfg);
                    break;
                }
				
                default:
                {
                    trigger_error( "Undefined storecfg:type({$storecfg['type']}) for store_id({$store_id})", E_USER_ERROR );
                }
            }
        }

        return self::$instances[$store_id];
    }
}
